package ExceptionAndThread.Exception01;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/*
    要求：
        模拟注册操作，如果存在用户名，则抛出异常并提示：该用户名已存在
    分析：
        1、使用数组保存已经注册过的用户名
        2、使用scanner获取输入的内容
        3、定义一个方法对输入的用户名进行判断，如果存在，抛出RegisterException异常，并提示已注册，否则添加用户名进数组，并提示注册成功
*/
public class RegisterTest {
    public static void main(String[] args) /*throws RegisterException01*/ {
        ArrayList<String> userList = new ArrayList<String>();
        userList.add("ivy");
        userList.add("lee");
        userList.add("zhangsan");
        System.out.println("please input you account name：");
        Scanner s = new Scanner(System.in);
        String name = s.next();
        String register = register(name, userList);
        if (register.equals(name)) {
            userList.add(name);
        }
        System.out.println(userList);
    }

    //如果RegisterException01继承自RuntimeException，则无需处理异常，会交由JVM处理（中断程序）
    public static String register(String name, List userList) /*throws RegisterException01*/ {
        if (userList.contains(name)) {
            try {
                throw new RegisterException01("该用户名已被使用");
            } catch (RegisterException01 e) {
                e.printStackTrace();
                return "";
            }
        } else {
            System.out.println("注册成功！");
            return name;
        }

    }
}
